<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 2.块作用域: 在js中使用{}包裹的代码称为代码块，代码块内部声明的变量外部【有可能】无法被访问
    //           2.1 let声明的变量会产生块作用域，var不会产生块作用域
    //           2.2 const声明的常量也会产生块作用域
    //           2.3 不同代码块之间的变量无法相互访问
    //           2.4 推荐使用let或const

    for (let i = 1; i <= 3; i++) {
      // let有块作用域
      console.log(i)
    }
    // console.log(i)  //超出了a的作用域，报错


    for (var i = 1; i <= 3; i++) {
      // var没有块作用域
      console.log(i)
    }
    console.log(i)  //不报错


    if (true) {
      let i = 10
    }
    // console.log(i)  //超出了a的作用域，报错

  </script>
</body>i

</html>